"""
Celery
    必须先导入工程的配置文件
    创建celery实例
    让celery加载broker
    celery实例对象自动检测

1. 任务
    任务包所对应的py文件名 必须为tasks.py
    所谓的任务其实就是函数
    这个函数必须要被celery的实例对象的task装饰器装饰
    这个任务必须被celery实例对象自动检测
2. broker
3. worker
"""

# import os
# os.environ.setdefault("DJANGO_SETTINGS_MODULE", "meiduo_mall.settings")
# 或者
from celery import Celery
import os
if not os.getenv('DJANGO_SETTINGS_MODULE'):
    os.environ['DJANGO_SETTINGS_MODULE'] = 'meiduo_mall.settings'

 # 创建celery实例
# main 其实 就是给celery设置一个名字，这个名字唯一就可以
# 推荐使用 文件路径
app = Celery(main='celery_tasks')
 #    让celery加载broker
app.config_from_object('celery_tasks.config')

 #    celery实例对象自动检测任务
 # 参数是： 列表
 #          列表中需要填写 任务的包路径
app.autodiscover_tasks(['celery_tasks.sms','celery_tasks.email','celery_tasks.html'])


# worker
# 虚拟环境中执行
# celery -A celery实例对象所在的文件 worker -l info
# celery -A celery_tasks.main worker -l info

